package com.pack.demo01;

public class Test02 {
    public static void main(String[] args) {
        // 复习一下装箱 和 拆箱
        // 装箱： 把基本数据类型 转换成 引用数据类型
        int num = 100;
        Integer number = new Integer(num); // 装箱
        System.out.println(num+number);

        // 拆箱：把引用数据类型 转换成 基本数据类型
        Integer n = new Integer(300);
        int b_num = n; // 拆箱
        System.out.println(b_num);

        // jdk 1.5 以后 自动装箱、拆箱了 上述写法是 jdk1.5之前的
        int age = 27;
        Integer i_age = age; // 自动装箱

        Integer i_year = 2021;
        int year = i_year;  // 自动拆箱
        /**
         * 关于 Integer一些方法
         * 进制之间转换：（返回数据类型都字符串）
         * Integer.toBinaryString（）把无符号整数转换成为二进制 返回字符串类型
         * Integer.toOctalString（） 把无符号整数转换成为八进制 返回字符串类型
         * Integer.toHexString（）   把无符号整数转换成为十六进制 返回字符串类型
         * Integer.toString(n,x)    把任意无符号整数转换成为任何进制 返回字符串类型 x 表示进制
         */
        System.out.println("====进制转换方法====");
        System.out.println(Integer.toBinaryString(n));  // 二进制
        System.out.println(Integer.toHexString(n));     // 十六进制
        System.out.println(Integer.toOctalString(n));   // 八进制
        System.out.println(Integer.toString(n,4));   // 任何进制
        /**
         *  数值操作
         *  Integer.valueOf(s);   返回指定 String 值的 Integer 对象
         *  Integer.valueOf(int); 返回一个指定 Int 值的 Integer 对象
         *  Integer.parseInt(s);  把字符串转成为 int 基本数据类型 返回 int值
         *  obj.intValue();       将 Integer 类型的值以 int 类型 返回 int值
         */
        System.out.println("====数值操作====");
        String s = "1000";
        Integer k = Integer.valueOf(s); // 把数字字符串转成 Integer 对象
        int k1 = Integer.parseInt(s);   // 把字符串转成了 int 类型
        int number1 = 288;
        Integer k2 = Integer.valueOf(number1); // 把数字 int 转成Integer 对象
        Integer k3 = number1; // 等同上面 -- 自动装箱操作 -- 以后都是这种写法
        int k4 = k.intValue(); // 获取 int 类型
        int k5 = k; // 获取 Integer 对象

        /**
         * 引用或基本数据 转成为字符串类型
         */
        String uo = "1236";
        int you =  Integer.parseInt(uo);

    }
}
